End users have more media and communications choices than ever before. A number of prominent technological trends are currently afoot (e.g., more computing devices, more online video services, more Internet video traffic), and these trends are changing the media delivery landscape. Separately, these trends are pushing the limits of capacity and, further, degrading the performance of video, where such degradation creates frustration amongst end users, content providers, and service providers. In many instances, the video data sought for delivery is dropped, fragmented, delayed, or simply unavailable to certain end users.
Adaptive bitrate (ABR) is a technique used in streaming multimedia over computer networks. While in the past, most video streaming technologies utilized either file download, progressive file download, or custom streaming protocols, most of today's adaptive streaming technologies are based on hypertext transfer protocol (HTTP). These technologies are designed to work efficiently over large distributed HTTP networks such as the Internet.
ABR operates by detecting a user's bandwidth and CPU capacity and by adjusting the quality of a video stream accordingly. Typically, ABR leverages the use of an encoder that can encode a single source video at multiple bit-rates. The player client can switch among the different encodings depending on available resources. Ideally, the result of these activities is little buffering, fast start times, and good experiences for both high-bandwidth and low-bandwidth connections. However, there are significant challenges that remain in common problematic network scenarios, which lead clients to incorrectly adjust their video streaming by mis-estimating bandwidth.